package persistance.dal;

import java.util.ArrayList;
import java.util.Calendar;
import ucc.objects.CaisseDuJourDTO;
import ucc.objects.ClasseDeProduitDTO;
import ucc.objects.CompteUtilisateurDTO;
import ucc.objects.ProduitDTO;
import configur.PluginFactory;

public interface CaisseDuJourFinder {
	CaisseDuJourFinder INSTANCE = (CaisseDuJourFinder) PluginFactory.INSTANCE
			.getPluginFor(persistance.dal.CaisseDuJourFinder.class);

	CaisseDuJourDTO laCaisseDuJourCompleteNum(int id);

	ArrayList<CaisseDuJourDTO> lesCaissesDuJourCompletes();

	ArrayList<CaisseDuJourDTO> lesCaissesDuJourCompletesPeriode(Calendar debut,
			Calendar fin);

	CaisseDuJourDTO laCaisseOuvertePour(CompteUtilisateurDTO utilisateur);

	double leFondDeCaisseLogique(CaisseDuJourDTO caisseDuJour);

	ArrayList<ProduitDTO> lesProduitsVendusTrie(
			CaisseDuJourDTO caisseDuJour, ClasseDeProduitDTO classe, boolean venteAnimateur);
}
